﻿#include <iostream>
using namespace std;

//int main()
//{
//	string a = "hello world";
//	string b = a;
//	if (a.c_str() == b.c_str())
//	{
//
//		cout << "true" << endl;
//
//	}
//	else cout << "false" << endl;
//
//	string c = b;
//	c = "";
//	if (a.c_str() == b.c_str())
//	{
//
//		cout << "true" << endl;
//
//	}
//	else cout << "false" << endl;
//
//	a = "";
//	if (a.c_str() == b.c_str())
//	{
//
//		cout << "true" << endl;
//
//	}
//	else cout << "false" << endl;
//	return 0;
//}

//int main()
//{
//	string a("Hello Bit.");
//	string b = a;
//	cout << a.c_str() << endl;
//	cout << b.c_str() << endl;
//	cout << sizeof(a.c_str()) << endl;
//	cout << sizeof(b.c_str()) << endl;
//
//	return 0;
//}

//int main()
//{
//	string str("Hello Bit.");
//	str.reserve(111);
//	str.resize(5);
//	str.reserve(50);
//	cout << str.size() << ":" << str.capacity() << endl;
//	return 0;
//}


#include <vector>

string multiply(string num1, string num2) {
    int m = num1.size(), n = num2.size(); // 获取两个字符串的长度
    vector<int> pos(m + n, 0); // 创建一个容量为 m + n 的数组，用于保存乘积的每一位数字

    // 两层循环，模拟竖式乘法的计算过程
    for (int i = m - 1; i >= 0; i--) { // 从 num1 的个位开始逐位相乘
        for (int j = n - 1; j >= 0; j--) { // 从 num2 的个位开始逐位相乘
            int mul = (num1[i] - '0') * (num2[j] - '0'); // 计算乘积
            int p1 = i + j, p2 = i + j + 1; // 计算乘积在结果中的位置
            int sum = mul + pos[p2]; // 将乘积加到 pos 数组中对应的位置上

            pos[p1] += sum / 10; // 将进位加到更高位
            pos[p2] = sum % 10; // 将当前位的结果保存到数组中
        }
    }

    string result;
    for (int p : pos) {
        // 将 pos 中的每一位数字转化为字符串
        if (!(result.empty() && p == 0)) {
            result.push_back('0' + p);
        }
    }

    return result.empty() ? "0" : result; // 返回最终结果
}